Create all 5 plots from available data
import pandas as pd
import numpy as np
%matplotlib inline
from plotly import __version__
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
#print('plotly ver ',__version__) # requires plotly version >= 1.9.0
init_notebook_mode(connected=True) # For Notebooks
import cufflinks as cf
#print('cufflinks ver ',cf.__version__)
# For offline use
cf.go_offline()
import matplotlib.pyplot as plt
import seaborn as sns
import datetime as dt
import matplotlib.dates as mdates
site = input('Enter site:')
block = input('Enter block:')
print("Got site={}, block={}".format(site,block))
#common part, read data from file
import plotly.graph_objs as go
p2b = '/mnt/data_log/'+ site +'/'
# to get full path to folder with csv data, like '/mnt/data_log/aikawa/'
p2f = p2b + 'trends_'+site+'_'+'b'+block+'.csv'
df = pd.read_csv(p2f, names=['date', 'sn', 'var','value'], header=0) # ['date', 'sn', 'var','value' ] # different format
#df['date'] = [dt.datetime.strptime(str(d),'%y%m%d').date() for d in df['date']]
#convert dates from 180101 -> 2018-01-01
df.head()
#t_min
data=[]
for sn in df['sn'].unique():
dft_min=pd.DataFrame(columns=['date','value'])
dft_min['date'] = df.loc[(df['var'] == 't_min') & (df['sn'] == sn) ]['date']
dft_min['value'] = df.loc[(df['var'] == 't_min') & (df['sn'] == sn) ]['value']
#dft_min.iplot(x='date', y='value',kind='scatter')
data.append(go.Scatter(x=dft_min['date'],
y=dft_min['value'],
mode='lines',
name=str(sn),
opacity=0.3,
)
)
#https://plot.ly/python/figure-labels/
layout=go.Layout(
title='T min, C, for '+site+' block '+block,
xaxis=dict(
title='Date',
titlefont=dict(
family='Courier New, monospace',
size=18,
color='#7f7f7f'
)
),
yaxis=dict(
title='Temperature, C',
titlefont=dict(
family='Courier New, monospace',
size=18,
color='#7f7f7f'
)
),
hovermode="closest"
)
fig = go.Figure(data=data, layout=layout)
iplot(fig)
#t_avg
data=[]
for sn in df['sn'].unique():
dft_avg=pd.DataFrame(columns=['date','value'])
dft_avg['date'] = df.loc[(df['var'] == 't_avg') & (df['sn'] == sn) ]['date']
dft_avg['value'] = df.loc[(df['var'] == 't_avg') & (df['sn'] == sn) ]['value']
#dft_avg.iplot(x='date', y='value',kind='scatter')
data.append(go.Scatter(x=dft_avg['date'],
y=dft_avg['value'],
mode='lines',
name=str(sn),
opacity=0.3,
)
)
#https://plot.ly/python/figure-labels/
layout=go.Layout(
title='T avg, C for '+site+' block '+block,
xaxis=dict(
title='Date',
titlefont=dict(
family='Courier New, monospace',
size=18,
color='#7f7f7f'
)
),
yaxis=dict(
title='Temperature, C',
titlefont=dict(
family='Courier New, monospace',
size=18,
color='#7f7f7f'
)
),
hovermode="closest"
)
fig = go.Figure(data=data, layout=layout)
iplot(fig)
#t_max
data=[]
for sn in df['sn'].unique():
dft_max=pd.DataFrame(columns=['date','value'])
dft_max['date'] = df.loc[(df['var'] == 't_max') & (df['sn'] == sn) ]['date']
dft_max['value'] = df.loc[(df['var'] == 't_max') & (df['sn'] == sn) ]['value']
#dft_max.iplot(x='date', y='value',kind='scatter')
data.append(go.Scatter(x=dft_max['date'],
y=dft_max['value'],
mode='lines',
name=str(sn),
opacity=0.3,
)
)
#https://plot.ly/python/figure-labels/
layout=go.Layout(
title='T max, C for '+site+' block '+block,
xaxis=dict(
title='Date',
titlefont=dict(
family='Courier New, monospace',
size=18,
color='#7f7f7f'
)
),
yaxis=dict(
title='Temperature, C',
titlefont=dict(
family='Courier New, monospace',
size=18,
color='#7f7f7f'
)
),
hovermode="closest"
)
fig = go.Figure(data=data, layout=layout)
iplot(fig)
# For P max
data=[]
for sn in df['sn'].unique():
dft_max=pd.DataFrame(columns=['date','value'])
dft_max['date'] = df.loc[(df['var'] == 'p_max') & (df['sn'] == sn) ]['date']
dft_max['value'] = df.loc[(df['var'] == 'p_max') & (df['sn'] == sn) ]['value']
#dft_max.iplot(x='date', y='value',kind='scatter')
data.append(go.Scatter(x=dft_max['date'],
y=dft_max['value'],
mode='lines',
name=str(sn),
opacity=0.3,
)
)
#https://plot.ly/python/figure-labels/
layout=go.Layout(
title='P diss max, W for '+site+' block '+block,
xaxis=dict(
title='Date',
titlefont=dict(
family='Courier New, monospace',
size=18,
color='#7f7f7f'
)
),
yaxis=dict(
title='P diss, W',
titlefont=dict(
family='Courier New, monospace',
size=18,
color='#7f7f7f'
)
),
hovermode="closest"
)
fig = go.Figure(data=data, layout=layout)
iplot(fig)
# For P avg
data=[]
for sn in df['sn'].unique():
dft_avg=pd.DataFrame(columns=['date','value'])
dft_avg['date'] = df.loc[(df['var'] == 'p_avg') & (df['sn'] == sn) ]['date']
dft_avg['value'] = df.loc[(df['var'] == 'p_avg') & (df['sn'] == sn) ]['value']
#dft_avg.iplot(x='date', y='value',kind='scatter')
data.append(go.Scatter(x=dft_avg['date'],
y=dft_avg['value'],
mode='lines',
name=str(sn),
opacity=0.3,
)
)
#https://plot.ly/python/figure-labels/
layout=go.Layout(
title='P diss avg, W for '+site+' block '+block,
xaxis=dict(
title='Date',
titlefont=dict(
family='Courier New, monospace',
size=18,
color='#7f7f7f'
)
),
yaxis=dict(
title='P diss, W',
titlefont=dict(
family='Courier New, monospace',
size=18,
color='#7f7f7f'
)
),
hovermode="closest"
)
fig = go.Figure(data=data, layout=layout)
iplot(fig)
# from https://stackoverflow.com/questions/31855794/whats-the-best-way-to-share-jupyter-notebooks-with-non-programmers
!jupyter nbconvert trend_v7_for_b305.ipynb --to html